#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
全局数据库实例管理器
确保整个应用程序只使用一个DatabaseServer实例
"""

from OperatingSystem.database_server_adapter import DatabaseServerAdapter
from OperatingSystem.storage_engine import CachePolicy

# 全局数据库适配器实例
_global_db_adapter = None

def get_global_db_adapter(data_root="database", force_new=False):
    """
    获取全局数据库适配器实例（单例）
    
    Args:
        data_root: 数据根目录
        force_new: 是否强制创建新实例
    
    Returns:
        DatabaseServerAdapter: 全局数据库适配器实例
    """
    global _global_db_adapter
    
    if _global_db_adapter is None or force_new:
        print(f"[GlobalDB] 创建全局DatabaseServerAdapter实例，data_root: {data_root}")
        _global_db_adapter = DatabaseServerAdapter(
            data_root=data_root,
            cache_size=100,
            cache_policy=CachePolicy.LRU,
            enable_locking=True
        )
    else:
        print(f"[GlobalDB] 使用已存在的全局DatabaseServerAdapter实例")
    
    return _global_db_adapter

def reset_global_db_adapter():
    """重置全局数据库适配器（主要用于测试）"""
    global _global_db_adapter
    _global_db_adapter = None
    print(f"[GlobalDB] 全局DatabaseServerAdapter实例已重置")
